#include<iostream>
#include<iomanip> // 用于setw()函数
using namespace std;

int n, k;
int path[21]; // 存储当前组合路径

void dfs(int step, int start) {
    if (step == k) { // 组合完成
        for (int i = 0; i < k; i++) {
            cout << setw(3) << path[i];
        }
        cout << endl;
        return;
    }
    
    // 从start开始遍历避免重复
    for (int i = start; i <= n; i++) {
        path[step] = i; // 记录当前选择
        dfs(step + 1, i + 1); // 递归下一层
    }
}

int main() {
    cin >> n >> k;
    dfs(0, 1); // 初始化DFS参数
    return 0;
}
